package FooBarBibliotheque;

import java.io.Serializable;
import java.util.GregorianCalendar;
import java.util.HashSet;

/* @authors vasquezs, haffafa, baldinof */
public class Parution implements Serializable {

    private static final long serialVersionUID = 1L;
    private String numeroParution, titre;
    private GregorianCalendar date;
    private Periodique periodique;
    private HashSet<Article> articles;

    public Parution(String numeroParution, String titre, GregorianCalendar date, Periodique periodique) {
        this();
        setPeriodique(periodique);
        setNumeroParution(numeroParution);
        setTitre(titre);
        setDate(date);
    }

    public Parution() {
        articles = new HashSet<Article>();
    }

    public Periodique getPeriodique() {
        return periodique;
    }

    public void setPeriodique(Periodique periodique) {
        this.periodique = periodique;
    }

    public HashSet<Article> getArticles() {
        return articles;
    }

    public void setArticles(HashSet<Article> articles) {
        this.articles = articles;
    }

    public GregorianCalendar getDate() {
        return date;
    }

    public void setDate(GregorianCalendar date) {
        this.date = date;
    }

    public String getNumeroParution() {
        return numeroParution;
    }

    public void setNumeroParution(String numeroParution) {
        this.numeroParution = numeroParution;
    }

    public String getTitre() {
        return titre;
    }

    public void setTitre(String titre) {
        this.titre = titre;
    }

    public Article creerArticle(String titre, int numeroPage) {
        Article art = new Article(titre, numeroPage, this);
        lierArticle(art);
        return art;
    }

    private void lierArticle(Article art) {
        articles.add(art);
    }

    public String infoParution() {
        return "Numéro du parution: " + numeroParution
                + "\nTitre parution: " + titre
                + "\nDate parution: " + EntreSortie.ecrireDate(date) + "\n";
    }

    public String infoParutionArticle() {
        String str = "";
        for (Article art : articles) {
            str += art.infoDocument();
        }
        return str;
    }
}
